package com.yjz.log.config;

import com.yjz.log.format.stack.StackTrackFormatter;
import com.yjz.log.format.thread.ThreadFormatter;
import com.yjz.log.print.ILogPrinter;

/**
 * 作用 : log配置类
 * 作者 : yjz
 * 时间 : 2024/9/13 17:25
 */
public abstract class JLogConfig {
    // 日志的一行长度
    public static int MAX_LEN = 512;
    // 打印线程信息
    public static ThreadFormatter THREAD_INFO_FORMATTER = new ThreadFormatter();
    // 打印堆栈信息
    public static StackTrackFormatter STACK_INFO_FORMATTER = new StackTrackFormatter();

    // 打印器
    public ILogPrinter[] printer() {
        return null;
    }

    // 注入Json解析器
    public JsonParse injectJsonParser() {
        return null;
    }

    // 日志的tag
    public String getGlobalTag() {
        return "Y-Log";
    }

    // 是否启用
    public boolean enable() {
        return true;
    }

    // 是否包含线程信息
    public boolean includeThread() {
        return true;
    }

    // 打印堆栈的深度
    public int stackDepth() {
        return 4;
    }

    public interface JsonParse {
        // 用于将打印的数据转换成json字符串，油外部构造传入
        String toJson(Object src);
    }
}
